@echo off
chcp 65001 >nul
title 思和智库 - 4090服务器快速部署

echo.
echo ========================================
echo     思和智库 - 4090服务器快速部署
echo ========================================
echo.
echo 本脚本将帮助你完成以下步骤：
echo   1. 配置后端环境
echo   2. 安装Python依赖
echo   3. 初始化数据库
echo   4. 配置前端环境
echo   5. 安装Node.js依赖
echo.
echo 预计耗时: 15-20分钟
echo.
pause

:: 检查是否在项目根目录
if not exist "backend\" (
    echo [错误] 请在项目根目录运行此脚本！
    pause
    exit /b 1
)

:: ================================
:: 第一步：配置后端
:: ================================
echo.
echo ========================================
echo [1/5] 配置后端环境
echo ========================================
cd backend

:: 检查Python
python --version >nul 2>&1
if errorlevel 1 (
    echo [错误] 未检测到Python，请先安装Python 3.9-3.11
    pause
    exit /b 1
)

:: 创建虚拟环境
if not exist "venv\" (
    echo [1.1] 创建Python虚拟环境...
    python -m venv venv
    echo [✓] 虚拟环境创建完成
) else (
    echo [✓] 虚拟环境已存在
)

:: 激活虚拟环境并安装依赖
echo [1.2] 激活虚拟环境...
call venv\Scripts\activate

echo [1.3] 升级pip...
python -m pip install --upgrade pip -q

echo [1.4] 安装Python依赖（这可能需要5-10分钟）...
pip install -r requirements.txt -q
if errorlevel 1 (
    echo [警告] 部分依赖安装失败，尝试逐个安装...
    pip install -r requirements.txt
)
echo [✓] Python依赖安装完成

:: 创建.env文件
if not exist ".env" (
    echo [1.5] 创建环境配置文件...
    call setup_env.bat
) else (
    echo [✓] 环境配置文件已存在
)

:: ================================
:: 第二步：初始化数据库
:: ================================
echo.
echo ========================================
echo [2/5] 初始化数据库
echo ========================================
echo.
echo [提示] 请确保PostgreSQL服务正在运行
echo [提示] 请确保已创建数据库: shihe_knowledgehub
echo.
choice /C YN /M "是否继续初始化数据库"
if errorlevel 2 goto skip_db

echo [2.1] 运行数据库初始化脚本...
python scripts\init_db.py
if errorlevel 1 (
    echo [错误] 数据库初始化失败！
    echo.
    echo 请检查：
    echo   1. PostgreSQL服务是否正在运行
    echo   2. 数据库 shihe_knowledgehub 是否已创建
    echo   3. .env 文件中的数据库密码是否正确
    echo.
    pause
    exit /b 1
)
echo [✓] 数据库初始化完成

:skip_db

:: ================================
:: 第三步：配置前端
:: ================================
cd ..
echo.
echo ========================================
echo [3/5] 配置前端环境
echo ========================================
cd frontend

:: 检查Node.js
node --version >nul 2>&1
if errorlevel 1 (
    echo [错误] 未检测到Node.js，请先安装Node.js 18+
    pause
    exit /b 1
)

:: 检查npm（可能因为PowerShell执行策略问题而失败）
echo [3.2] 检查npm...
npm --version >nul 2>&1
if errorlevel 1 (
    echo [警告] npm无法运行！
    echo.
    echo 这通常是PowerShell执行策略问题导致的。
    echo.
    echo 请选择：
    echo   1. 现在修复（推荐）
    echo   2. 稍后手动修复并重新运行本脚本
    echo.
    choice /C 12 /N /M "请选择 [1-2]: "
    if errorlevel 2 (
        echo.
        echo 请先运行 FIX_4090_ISSUES.bat 修复npm问题
        pause
        exit /b 1
    )
    echo.
    echo [执行] 修复npm执行策略...
    powershell -Command "Start-Process PowerShell -ArgumentList 'Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force' -Verb RunAs -Wait"
    echo [✓] 修复完成
    echo.
)

:: 创建.env.local
if not exist ".env.local" (
    echo [3.1] 创建前端环境配置...
    (
        echo # 后端API地址
        echo NEXT_PUBLIC_API_URL=http://localhost:3301/api
    ) > .env.local
    echo [✓] 前端配置创建完成
) else (
    echo [✓] 前端配置已存在
)

:: ================================
:: 第四步：安装Node依赖
:: ================================
echo.
echo ========================================
echo [4/5] 安装Node.js依赖
echo ========================================
echo [4.1] 安装npm包（这可能需要3-5分钟）...
call npm install
if errorlevel 1 (
    echo [警告] npm安装出错，尝试清理缓存后重试...
    call npm cache clean --force
    call npm install
)
echo [✓] Node.js依赖安装完成

:: ================================
:: 第五步：创建启动脚本
:: ================================
cd ..
echo.
echo ========================================
echo [5/5] 创建启动脚本
echo ========================================

:: 创建START.bat
echo [5.1] 创建一键启动脚本...
(
echo @echo off
echo chcp 65001 ^>nul
echo title 思和智库 - 系统启动
echo.
echo echo.
echo echo ========================================
echo echo        思和智库知识管理系统
echo echo ========================================
echo echo.
echo echo [启动中] 正在启动后端和前端服务...
echo echo.
echo.
echo :: 启动后端（新窗口）
echo start "思和智库-后端" cmd /k "cd /d backend ^&^& call venv\Scripts\activate ^&^& uvicorn app.main:app --host 0.0.0.0 --port 3301 --reload"
echo.
echo :: 等待2秒让后端先启动
echo timeout /t 2 /nobreak ^>nul
echo.
echo :: 启动前端（新窗口）
echo start "思和智库-前端" cmd /k "cd /d frontend ^&^& npm run dev"
echo.
echo :: 等待3秒
echo timeout /t 3 /nobreak ^>nul
echo.
echo echo.
echo echo ========================================
echo echo [✓] 服务启动完成！
echo echo ========================================
echo echo.
echo echo 后端地址: http://localhost:3301
echo echo 前端地址: http://localhost:3300
echo echo.
echo echo 请在浏览器访问: http://localhost:3300
echo echo.
echo echo 默认管理员账户:
echo echo   用户名: admin
echo echo   密码: admin123
echo echo.
echo echo 按任意键打开浏览器...
echo pause ^>nul
echo.
echo :: 打开浏览器
echo start http://localhost:3300
echo.
echo exit
) > START.bat

echo [✓] 启动脚本创建完成

:: ================================
:: 部署完成
:: ================================
echo.
echo ========================================
echo        部署完成！
echo ========================================
echo.
echo [下一步操作]
echo.
echo 1. 启动系统:
echo    双击根目录的 START.bat 文件
echo.
echo 2. 访问地址:
echo    http://localhost:3300
echo.
echo 3. 默认账号:
echo    用户名: admin
echo    密码: admin123
echo.
echo 4. 首次登录后请立即修改密码！
echo.
echo ========================================
echo.
choice /C YN /M "是否现在启动系统"
if errorlevel 2 goto :end

echo.
echo [启动中] 正在启动系统...
start START.bat

:end
echo.
echo 感谢使用思和智库！
echo.
pause

